Добро пожаловать в Engee
Отправляем команды окружению
Тема: Создавайте в Engee переменные, в которых будет храниться один или несколько элементов.
Вводное видео
Задания в текущем наборе упражнений нужно будет выполнять в командной строке. Вы можете открыть командную строку, нажав на её значок на левой панели.
Чтобы вернуться к этому руководству, нажмите на значок редактора , который находится на той же панели.
Переключаться между учебником и командной строкой можно также через кнопки в заголовке центрального окна Engee:
Упражнение 1: Отдаем команды окружению
Вы можете выполнять команды, вводя их в командном окне сразу после подсказки Engee (>>) и отправляя их на исполнение нажатием клавиши Enter.
Задача 1
Откройте командную строку, нажав на кнопку . Вы всегда можете вернуться к этому руководству, нажав на кнопку Редактор скрипта в заголовке центрального окна Engee.
3*5.Подсказка
Поместите курсор справа от >>. Используйте операцию * для перемножения двух скалярных величин.
Решение
3*5
Задача 2
Если результат вычислений специально не присваивать какой-нибудь переменной, то Julia просто демонстрирует его, но не сохраняет результат операции. Вот как это будет выглядеть:
>> 7 + 3
10
3*5 переменной с именем m, выполнив следующую команду:
m = 3*5
Подсказка
Используйте знак = для присвоения переменной её значения. Язык Julia чувствителен к регистру, поэтому убедитесь, что переменная слева от знака равенства называется m, а не M.
Решение
m = 3*5
Задача 3
Знак равенства (=) в Julia – это оператор присваивания, означающий, что результат вычисления (выражение справа от знака равенства) присваивается переменной (которая слева от знака).
Когда вы пишете x = 3 + 4, Julia сперва вычисляет 3 + 4 , а затем присваивает результат (7) переменной x.
m = m + 1 и проверьте результат операции.Подсказка
Увеличьте значение переменной m, добавив к ней 1. Присвойте результат той же переменной m.
Решение
m = m + 1
Задача 4
Обратите внимание, что все созданные вами переменные отображаются в окне для переменных (слева). Для того чтобы открыть окно переменных, нажмите на кнопку {x} (Переменные) на панели инструментов в левой части экрана.
y, которая будет иметь значение m/2.Подсказка
Воспользуйтесь символом /, чтобы осуществить деление одного числа на другое.
Решение
y = m/2
Задача 5
Когда вы исполняете команду без точки с запятой в конце, Julia выводит результат операции в самом командном окне.
>> x = 5 + 1
6
Если добавить точку с запятой в конец команды, то результат выполнения этой команды не будет отображаться. Но команда все равно будет выполнена, и вы можете в этом убедиться, заглянув в окно Переменные.
>> x = 5 + 1;
k = 8 - 2; с точкой с запятой в конце.
Результат не появится в окне Командная строка, но вы сможете увидеть его в окне Переменные.
Подсказка
Задача на вычитание двух чисел. Используйте символ ; в конце команды. Это позволит отключить вывод результата в командном окне.
Решение
k = 8 - 2;
Задача 6
Вы можете вызывать те команды, которые уже выполняли ранее, нажав на клавиатуре клавишу со стрелкой вверх ↑. Обратите внимание, что для этого окно Командная строка должно быть активным.
m = 3*5, и, перед нажатием клавиши Enter, измените команду на m = 3*k.Подсказка
Переменной m должно быть привсоено значение 3*k.
Решение
m = 3*k
Задача 7
Когда вы исполняете команду, состоящую только из имени какой-нибудь переменной, Julia покажет в командной строке текущее значение этой переменной.
y вы использовали переменную m. Было ли значение y пересчитано, когда мы изменяли значение m в Задаче 6?
Наберите имя переменной y в командной строке (и нажмите Enter).
Подсказка
Введите y как самостоятельную команду, чтобы отобразить её значение.
>> y
Решение
y
Задача 8*
Значение y не изменилось, потому что окружение Julia само по себе не отслеживает связь между переменными и не выполняет заново все введенные вами ранее команды.
Если вы хотите пересчитать y после изменения m, то вам нужно повторить команду y = m/2.
Попробуйте! С помощью стрелки вверх верните команду y = m/2, затем нажмите Enter. Чтобы увидеть новое значение y, не забудьте, что точка с запятой в конце команды не нужна.
Упражнение 2: Создаем переменные
a = 8;
Задача 1
Вы можете давать переменным любые названия, с которыми вам будет удобно работать. В Julia очень мало технических ограничений на названия переменных: названия должны начинаться с буквы или знака подчеркивания (_) и содержать в себе буквы (латинского, русского или других алфавитов), цифры и разрешенные знаки (к которым относится, например, восклицательный знак, подчеркивание, диакритики и модификаторы Unicode... и просто множество разных символов).
Переменные Julia чувствительны к регистру.
A и значением (-2).Подсказка
Воспользуйтесь оператором присваивания =, чтобы присвоить переменной ее значение. Julia учитывает регистр символов, так что переменная слева от знака присваивания должна называться именно A, не a.
Решение
A = -2
В качестве имен переменных можно вводить символы, которых нет на клавиатуре. Например, если в командной строке ввести \alpha + клавиша TAB, то появится греческая буква . Сочетание \beta + TAB даст букву и т.д. Сочетание \int + TAB – символ интеграла , сочетание \sqrt + TAB – символ квадратного корня и т.д. Символы Unicode можно вводить через имя символа в LaTeX, при этом перед ним ставится обратный слэш \, а после него – TAB.
Больше об именах переменных вы можете прочитать в документации.
Задача 2
Обратите внимание, что обе переменные a и A заданы и присутствуют в окне Переменные.
Заметим, что при написании программ полезнее давать переменным какие-нибудь осмысленные названия, а не просто a, x и т.п.
A и a для вычисления значения (a+A)/2. Сохраните результат в переменной с названием meanAa.Подсказка
Убедитесь, что вы используете круглые скобки вокруг выражения a + A.
Решение
meanAa = (a+A)/2
Задача 3*
Если вы используете недопустимое имя переменной, Julia выдаст сообщение об ошибке.
else = 9, чтобы увидеть сообщение об ошибке.Упражнение 3: Сохраняем и загружаем переменные
Задача 1
Вы можете экспортировать переменные из текущего окружения в JLD2-файлы. Это специальный формат в Julia, созданный, чтобы сохранять любое количество переменных в одном файле. Его полное название – Julia Data Format. Описание формата можно посмотреть здесь и здесь.
Например, чтобы сохранить переменную data в JLD2-файл с именем filename.jld2, загрузите библиотеку JLD2 при помощи команды:
>> using JLD2;
Затем выполните команду:
>> jldsave("filename.jld2"; названия_переменных)
Обратите внимание на то, что только в случае этой конкретной команды перечень переменных должен быть отделен от названия файла при помощи точки с запятой (
;). Обычно аргументы пишутся через запятую (,).
data, содержащая массив чисел 1 2 3, которая затем сохраняется в файл с именем datafile.jld2.using JLD2;
data = [1 2 3];
jldsave("datafile.jld2"; data)
Подсказка
Используйте команду jldsave. Не забудьте установить библиотеку при первом запуске и выполнить команду using JLD2, чтобы впоследствии можно было задействовать все команды из этой библиотеки.
Решение
using JLD2;
data = [1 2 3];
jldsave("datafile.jld2"; data)
Задача 2
Вы можете вручную изменять значения переменных в окне переменных.
data из рабочей области, заменив значение ее третьего элемента с 3 на 4.Подсказка
Откройте окно переменных, щелкните правой кнопкой мыши по строчке с переменной data, выберите пункт Редактировать значение и в открывшейся таблице замените число 3 на число 4. Нажмите Enter, чтобы сохранить изменения.
Задача 3
В левой части экрана находится область переменных. Как вы видите, один из элементов массива x изменил значение. Теперь, чтобы восстановить сохраненную переменную, воспользуйтесь командой load:
>> data = load("filename", "data")
Ранее созданный файл сейчас расположен по абсолютному адресу
/user/datafile.jld2, но вы можете указать и относительное имя:datafile.jld2
Обратите внимание на то, что названия загружаемых переменных пишутся в двойных кавычках.
data из файла datafile.jld2.data = load("datafile.jld2", "data")
Подсказка
Команда load позволяет поименно загружать переменные из JLD2-файла, созданного вами в Задаче 1.
Решение
data = load("datafile.jld2", "data")
Задача 4
Обратите внимание, что переменная data снова находится в окне переменных. Как вы помните, содержимое любой переменной можно увидеть, введя ее название в командной строке.
>> название_переменной
data, чтобы отобразить значение этой переменной.Подсказка
Выполните команду data.
Решение
data
Задача 5
Для очистки истории командной строки можно воспользоваться командой Ctrl+L. Вызов этой команды не очищает историю предыдущих команд.
Задание: Очистите командную строку при помощи команды Ctrl+L.
Подсказка
Выполните очистку командной строки, нажав в командной строке Ctrl+L.
Упражнение 4: Используем встроенные функции и константы
Задача 1
В Julia есть встроенные константы, например pi хранит значение числа π.
>> a = pi
π = 3.1415926535897...
При желании в коде можно использовать и сам символ π. Julia позволяет именовать объекты, используя почти весь спектр символов Unicode.
x со значением π/2.Подсказка
Запись pi обозначает число π, которое мы используем в расчетах.
Решение
x = pi/2
Задача 2
В Julia встроено множество функций, например abs (абсолютное значение) или exp (экспонента).
>> a = sin(-5)
0.9589242746631385
Обратим ваше внимание, что для передачи аргументов в функции в Julia используются круглые скобки, как и принято в математической нотации.
sin вычислите синус аргумента x. Присвойте результат переменной y.Подсказка
Передайте аргумент x в функцию sin, используя круглые скобки.
Решение
y = sin(x)
Задача 3
sqrt вычислите квадратный корень от числа -9+0im. Присвойте результат переменной с именем z.
Модификатор im означает мнимую часть числа, это основной способ записи комплексных чисел.
Подробнее о работе с комплексными числами в Julia вы можете почитать в документации.
Подсказка
Передайте число -9+0im в качестве аргумента функции sqrt, используя круглые скобки, как показано в примере: a = sqrt(4).
Решение
z = sqrt(-9+0im)
Задача 4*
Обратите внимание, что аргумент и решение содержат мнимую единицу i, которая в Julia является встроенной константой.
Вы можете управлять точностью отображения переменных с помощью функции printf. Эта функция будет доступна, если подключить библиотеку Printf.
Вы можете запросить больше знаков после запятой (например, 40) при выводе переменной x с помощью следующей инструкции:
using Printf
@printf "%.40f" x
Выражение в кавычках "%.40f" задает формат вывода переменной: .40 означает число знаков после десятичной запятой, буква f задает тип данных, в который преобразуется переменная. В данном случае f – вещественный тип; также возможны i – целый тип, e – экспоненциальная запись, s – строковый тип и др. После пробела указывается имя переменной x, значение котрой нужно вывести на экран. Полную информацию о формате вывода с помощью функции printf вы можете посмотреть в документации.
Тест для получения сертификата
Если вы впервые проходите тестирование на платформе Этюд по ссылке из Engee, то, нажав на ссылку ниже, вы увидите следующее диалоговое окно:
Нажмите на кнопку "Предоставить", чтобы авторизоваться на платформе Этюд с данными вашего профиля Engee ID.
Если вы раньше уже проходили тестирование по ссылке из Engee, то ваша авторизация выполнится автоматически и тестирование начнется сразу же после нажатия на ссылку.